As will be known to those skilled in the art, conventional computer generated imagery or graphics systems are capable of displaying pictures of three dimensional objects, which objects are typically defined by a plurality of mathematical elements, such as polygons, or other higher order surfaces. Certain real time computer graphics systems are capable of providing color shading of the object (relative to a source of supply of incident light) as the object moves across the screen of a video display. However, in order to realistically and accurately portray a color shaded, three dimensional object, knowledge of certain inherent characteristics is required regarding the object and the incident light supply. More particularly, the shading for a three dimensional object depends upon the color of the polygons thereof before shading, the direction of a supply of incident light, and the orientation of each polygon relative to the direction of the incident light.
The color of the polygons before shading and the direction of the supply of incident light is relatively easily ascertainable. However, the orientation of each polygon relative to the direction of the incident light often requires numerous calculations and considerable numbers of processing apparatus. That is, the orientation of each polygon is commonly calculated by first deriving a vector which is normal to either a light receiving face of the polygon or the plane in which the polygon lies. Such normal vector is typically obtained by calculating the cross product of two adjacent side vectors which designate the light receiving face of the polygon. In the usual case, where each vector is represented by pluralities of multiple (e.g. sixteen) bit numbers, the resultant cross product is represented by a series of data strings of 32 or more bits in length. Thus, as a consequence of the lengthy data strings (indicative of the vector cross product), conventional apparatus by which to calculate the cross product and accommodate the multiple bit data strings has heretofore been characterized by increased throughput delay and relatively complex and extensive processing (e.g. storage and control) hardware.
In order to avoid the aforementioned characterizations, it has sometimes been common to process only a representative portion or chunk of each different data string. Such a chunk of data is typically selected from a data string in an arbitrary fashion, and the least significant bits thereof are, consequently, often disregarded. Accordingly, while the performance of the processing hardware may be enhanced, the accuracy and precision of the information content of the data strings is undesirably reduced.
No patent is known which discloses or suggests a method and apparatus for optimizing both the precision and size of a plurality of data strings (e.g. utilized in the calculation of a vector cross product) by selectively normalizing a plurality of such data strings relative to one another, so as to accurately and efficiently provide color shading to a three dimensional object relative to the position of the object to a supply of incident light. However, reference may be made to one or more of the following U.S. Patents which generally disclose processing systems, wherein certain groupings of binary bits are deleted from a data string to speed up a processing (e.g. multiplication) operation:
______________________________________ Patent No. Issue Date ______________________________________ 3,192,363 June 25, 1965 4,173,789 November 6, 1979 4,276,607 June 30, 1981 ______________________________________